// Token管理和认证相关工具

/**
 * 保存token
 * @param {String} token 
 */
export const setToken = (token) => {
  uni.setStorageSync('token', token)
}

/**
 * 获取token
 * @returns {String}
 */
export const getToken = () => {
  return uni.getStorageSync('token') || ''
}

/**
 * 移除token
 */
export const removeToken = () => {
  uni.removeStorageSync('token')
}

/**
 * 保存用户信息
 * @param {Object} userInfo 
 */
export const setUserInfo = (userInfo) => {
  uni.setStorageSync('userInfo', userInfo)
}

/**
 * 获取用户信息
 * @returns {Object}
 */
export const getUserInfo = () => {
  return uni.getStorageSync('userInfo') || {}
}

/**
 * 移除用户信息
 */
export const removeUserInfo = () => {
  uni.removeStorageSync('userInfo')
}

/**
 * 检查是否已登录
 * @returns {Boolean}
 */
export const isLogin = () => {
  return !!getToken()
}

/**
 * 退出登录
 */
export const logout = () => {
  removeToken()
  removeUserInfo()
  // 跳转到登录页
  uni.reLaunch({
    url: '/pages/login/login'
  })
}

/**
 * 检查登录状态，未登录跳转到登录页
 */
export const checkLogin = () => {
  if (!isLogin()) {
    uni.showToast({
      title: '请先登录',
      icon: 'none'
    })
    setTimeout(() => {
      uni.reLaunch({
        url: '/pages/login/login'
      })
    }, 1500)
    return false
  }
  return true
}

